home *** CD-ROM | disk | FTP | other *** search
- //------------------------------------------------
- // SimplePrintDialog.cs ⌐ 2001 by Charles Petzold
- //------------------------------------------------
- using System;
- using System.Drawing;
- using System.Drawing.Printing;
- using System.Windows.Forms;
-
- class PrintDialogHelloWorld: Form
- {
- const int iNumberPages = 3;
- int iPagesToPrint, iPageNumber;
-
- public static void Main()
- {
- Application.Run(new PrintDialogHelloWorld());
- }
- public PrintDialogHelloWorld()
- {
- Text = "Dißlogo para imprimir simple";
-
- Menu = new MainMenu();
- Menu.MenuItems.Add("&Archivo");
- Menu.MenuItems[0].MenuItems.Add("&Imprimir...",
- new EventHandler(MenuFilePrintOnClick));
- }
- void MenuFilePrintOnClick(object obj, EventArgs ea)
- {
- // Crear PrintDocument y PrintDialog.
-
- PrintDocument prndoc = new PrintDocument();
- PrintDialog prndlg = new PrintDialog();
- prndlg.Document = prndoc;
-
- // Permitir un rango de pßginas.
-
- prndlg.AllowSomePages = true;
- prndlg.PrinterSettings.MinimumPage = 1;
- prndlg.PrinterSettings.MaximumPage = iNumberPages;
- prndlg.PrinterSettings.FromPage = 1;
- prndlg.PrinterSettings.ToPage = iNumberPages;
-
- // Si el cuadro de dißlogo devuelve OK, imprimir.
-
- if(prndlg.ShowDialog() == DialogResult.OK)
- {
- prndoc.DocumentName = Text;
- prndoc.PrintPage += new PrintPageEventHandler(OnPrintPage);
-
- // Determinar las pßginas a imprimir.
-
- switch (prndlg.PrinterSettings.PrintRange)
- {
- case PrintRange.AllPages:
- iPagesToPrint = iNumberPages;
- iPageNumber = 1;
- break;
-
- case PrintRange.SomePages:
- iPagesToPrint = 1 + prndlg.PrinterSettings.ToPage -
- prndlg.PrinterSettings.FromPage;
- iPageNumber = prndlg.PrinterSettings.FromPage;
- break;
- }
- prndoc.Print();
- }
- }
- void OnPrintPage(object obj, PrintPageEventArgs ppea)
- {
- Graphics grfx = ppea.Graphics;
- Font font = new Font("Times New Roman", 360);
- string str = iPageNumber.ToString();
- SizeF sizef = grfx.MeasureString(str, font);
-
- grfx.DrawString(str, font, Brushes.Black,
- (grfx.VisibleClipBounds.Width - sizef.Width) / 2,
- (grfx.VisibleClipBounds.Height - sizef.Height) / 2);
-
- iPageNumber += 1;
- iPagesToPrint -= 1;
- ppea.HasMorePages = iPagesToPrint > 0;
- }
- }
-